ccfcac91ec366a73bcf8291e8066ebdf121686af,beetl-core/src/main/java/org/beetl/ext/nutz/BeetlViewMaker.java,BeetlViewMaker,init,#,30
Before Change
Configuration cfg;
try
{
cfg = Configuration.defaultConfiguration();
WebAppResourceLoader resourceLoader = new WebAppResourceLoader();
groupTemplate = new GroupTemplate(resourceLoader, cfg);
inited = true;
After Change
public void init() throws IOException {
log.debug("beetl init ....");
Configuration cfg = Configuration.defaultConfiguration();
Properties prop = new Properties();
InputStream ins = Configuration.class.getResourceAsStream("/beetl.properties");
if (ins != null) {
log.debug("found beetl.properties, loading ...");
try {
prop.load(ins);
}
finally {
Streams.safeClose(ins);
}
}
if (!prop.contains(Configuration.RESOURCE_LOADER)) {
// 默认选用WebAppResourceLoader,除�用户自定义了RESOURCE_LOADER
log.debug("no custom RESOURCE_LOADER found , select WebAppResourceLoader");
cfg.setResourceLoader(WebAppResourceLoader.class.getName());
}
if (!prop.contains(Configuration.DIRECT_BYTE_OUTPUT)) {
// 默认�用DIRECT_BYTE_OUTPUT,除�用户自定义, 一般�会.
log.debug("no custom DIRECT_BYTE_OUTPUT found , set to true");
// 当DIRECT_BYTE_OUTPUT为真时, beetl渲染会通过getOutputStream获�输出�
// 而BeetlView会使用LazyResponseWrapper代�getOutputStream方法
// 从而实现在模æ?¿è¾“出之å‰?,é?¿å…?真æ£è°ƒç”¨getOutputStream
// è¿™æ ·@Fail视图就能æ£å¸¸å·¥ä½œäº†
cfg.setDirectByteOutput(true);
}
if (!prop.contains(Configuration.ERROR_HANDLER)) {
// 没有自定义ERROR_HANDLER,用定制的
cfg.setErrorHandlerClass(LogErrorHandler.class.getName());
}
groupTemplate = new GroupTemplate(cfg);
render = new WebRender(groupTemplate);
log.debug("beetl init complete");
}